package main

import (
	"errors"
	"github.com/jmoiron/sqlx"
	"log"
)

/**
操作数据库相关的
 */

//数据库操作句柄
var Db *sqlx.DB
func init(){
	db,err := sqlx.Open(`mysql`,`root:yl13795950539@tcp(127.0.0.1:3306)/gophotowebsite?charset=utf8&parseTime=true`)
	log.Println(db,err)
	if err!=nil{
		log.Fatalln(err)
	}
	err = db.Ping()
	if err!=nil{
		log.Fatalln(err)
	}
	Db = db
}
/**
一个照片的信息
*/
type Info struct {
	Id int64 //主键
	Name string //文件名称
	Path string //保存路径
	Note string	//备注
	Unix int64	//时间
}

//添加照片信息
func InfoAdd(mod *Info) error {
	result,err := Db.Exec("insert  into info (`name`,path,note,unix) values(?,?,?,?)",mod.Name,mod.Path,mod.Note,
	mod.Unix)

	if err!= nil {
		return err
	}

	id,_:=result.LastInsertId()
	if id<1{
		return errors.New("添加失败!")
	}
	return nil
}

//查询某条图片的
func InfoGet(id int64) (Info,error) {
	mod:=Info{}
	err := Db.Get(&mod,"select * from info where id = ?",id)
	return mod,err
}

//删除图片
func InfoDelete(id int64) error {
	result,err := Db.Exec("delete from info where id =?",id)
	if err!=nil {
		return err
	}
	rows,_ := result.RowsAffected()
	if rows!=1{
		return errors.New("删除失败!")
	}
	return nil
}


//返回信息列表
func InfoList() ([]Info,error) {
	mods := make([]Info,0,8)
	err:=Db.Select(&mods,"select * from info ")
	return mods,err
}
